package model;

/**
 * GameConfig is a shell class for transferring information
 * from the first client to connect, whom decides the
 * configuration of the game, and is sent to the server to 
 * construct the game.
 * 
 * @author kluikens
 */
public class GameConfig extends GameAdministration {
	private int totalHuman;
	private int totalPlayers;
	private int numSimpleAI;
	private int numExpertAI;
	private boolean randomAssign;
	
	/**
	 * Initializes a GameConfig class
	 * @param i Number of Human players
	 * @param j Number of Total Players
	 * @param s Number of SimpleAI
	 * @param e Number of ExpertAI
	 * @param r Whether to assign armies to countries randomly
	 */
	public GameConfig( int i, int j, int s, int e, boolean r ) {
		this.totalHuman = i;
		this.totalPlayers = j;
		numSimpleAI = s;
		numExpertAI = e;
		randomAssign = r;
	}
	
	/**
	 * Get the total number of humans playing
	 * @return int
	 */
	public int getTotalHumans() {
		return totalHuman;
	}
	
	/**
	 * Get the total number of gamers to be playing
	 * @return int
	 */
	public int getTotalPlayers() {
		return totalPlayers;
	}
	
	/**
	 * Get the total number of SimpleAI gamers
	 * @return int
	 */
	public int getNumSimpleAI() {
		return numSimpleAI;
	}

	/**
	 * Get the total number of ExpertAI gamers
	 * @return int
	 */
	public int getNumExpertAI() {
		return numExpertAI;
	}

	/**
	 * Get whether or not to assign armies to country
	 * automatically.
	 * @return
	 */
	public boolean isRandomAssign() {
		return randomAssign;
	}
}
